Skip to content

Conversation

@ishanema03
Copy link

Which issue does this PR close?

Rationale for this change

As mentioned in the issue, the From trait implementations for Column were misleading - they invoked Column::from_qualified_name() which parses and lower-cases field names, making conversions like field.name().into() behave unexpectedly. Requiring explicit calls to Column::from_qualified_name() makes the behavior clear and prevents misuse.

What changes are included in this PR?

  • Removed From, From<&str>, and From<&String> trait implementations for Column
  • Updated col() and unnest() functions to accept strings directly
  • Replaced all .into() usages with explicit Column::from_qualified_name() calls across the codebase

Are these changes tested?

Yes, all existing tests have been updated and pass with the new API.

Are there any user-facing changes?

Yes, this is a breaking API change:

  • Users must now call Column::from_qualified_name() explicitly instead of using .into()
  • The helper functions col() and unnest() still accept strings directly

@github-actions github-actions bot added sql SQL Planner logical-expr Logical plan and expressions optimizer Optimizer rules core Core DataFusion crate substrait Changes to the substrait crate common Related to common crate labels Jan 13, 2026
@ishanema03 ishanema03 marked this pull request as draft January 13, 2026 12:31
@ishanema03 ishanema03 force-pushed the remove-from-string-column branch from 97d3400 to 56a14c5 Compare January 13, 2026 12:45
@ishanema03 ishanema03 marked this pull request as ready for review January 13, 2026 12:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

common Related to common crate core Core DataFusion crate logical-expr Logical plan and expressions optimizer Optimizer rules sql SQL Planner substrait Changes to the substrait crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remove From<String> for Column

1 participant